[INFO] cloning repository https://github.com/KilluaSSR/KilluaBot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KilluaSSR/KilluaBot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKilluaSSR%2FKilluaBot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKilluaSSR%2FKilluaBot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 52ff550ef734f34c49afb1ca9d7ad011076afb9d
[INFO] checking KilluaSSR/KilluaBot against 40527f3e444fde1deb361751bdef9b9e11d1b971+rustflags=--cfg crater_hack --force-warn invalid-c-variadic-arguments for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKilluaSSR%2FKilluaBot" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KilluaSSR/KilluaBot
[INFO] finished tweaking git repo https://github.com/KilluaSSR/KilluaBot
[INFO] tweaked toml for git repo https://github.com/KilluaSSR/KilluaBot written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KilluaSSR/KilluaBot on toolchain 40527f3e444fde1deb361751bdef9b9e11d1b971
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KilluaSSR/KilluaBot already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `KilluaBot` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-4-tc2/source/target/.../KilluaBot
[INFO] [stderr]    |                                                  ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `killua-bot`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:41:8
[INFO] [stderr]    |
[INFO] [stderr] 41 - name = "KilluaBot"
[INFO] [stderr] 41 + name = "killua-bot"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `killua-bot`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:42:19
[INFO] [stderr]    |
[INFO] [stderr] 42 ~ version = "0.1.0"
[INFO] [stderr] 43 + [[bin]]
[INFO] [stderr] 44 + name = "killua-bot"
[INFO] [stderr] 45 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `KilluaBot` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a
[INFO] running `Command { std: "docker" "start" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid --cfg crater_hack --force-warn invalid-c-variadic-arguments" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `KilluaBot` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../KilluaBot
[INFO] [stderr]    |                          ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `killua-bot`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:41:8
[INFO] [stderr]    |
[INFO] [stderr] 41 - name = "KilluaBot"
[INFO] [stderr] 41 + name = "killua-bot"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `killua-bot`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:42:19
[INFO] [stderr]    |
[INFO] [stderr] 42 ~ version = "0.1.0"
[INFO] [stderr] 43 + [[bin]]
[INFO] [stderr] 44 + name = "killua-bot"
[INFO] [stderr] 45 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `KilluaBot` (manifest) generated 1 warning
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking hashbrown v0.16.0
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling cc v1.2.44
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling openssl v0.10.74
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]     Checking indexmap v2.12.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]     Checking iri-string v0.7.8
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling openssl-sys v0.9.110
[INFO] [stderr]    Compiling stacker v0.1.22
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rc-box v1.3.0
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking colored v3.0.0
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking takecell v0.1.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking inventory v0.3.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking pretty_env_logger v0.5.0
[INFO] [stderr]    Compiling ar_archive_writer v0.2.0
[INFO] [stderr]    Compiling psm v0.1.28
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling teloxide-macros v0.10.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling serde_with_macros v3.15.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking serde_with v3.15.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking dptree v0.5.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling aquamarine v0.6.0
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]     Checking hyper v1.7.0
[INFO] [stderr]     Checking hyper-util v0.1.17
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.24
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking teloxide-core v0.13.0
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking teloxide v0.17.0
[INFO] [stderr]     Checking KilluaBot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/core/traits.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait ModelProvider: Send + Sync {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 11 |     /// Get the provider name
[INFO] [stdout] 12 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_conversation`, `delete_conversation`, and `clear_messages` are never used
[INFO] [stdout]   --> src/core/traits.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait ConversationStorage: Send + Sync {
[INFO] [stdout]    |           ------------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 35 |     async fn get_conversation(&self, id: ConversationId) -> Result<ConversationInfo>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     async fn delete_conversation(&self, id: ConversationId) -> Result<()>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     async fn clear_messages(&self, conversation_id: ConversationId) -> Result<()>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Image` and `Video` are never constructed
[INFO] [stdout]   --> src/core/types.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub enum ResponseChunk {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 95 |     Text(String),
[INFO] [stdout] 96 |     Image { data: Vec<u8>, mime_type: String },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 97 |     Video { data: Vec<u8>, mime_type: String },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseChunk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotFound` is never constructed
[INFO] [stdout]   --> src/core/error.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum BotError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     NotFound(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE` is never used
[INFO] [stdout]   --> src/storage/queries.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const DELETE: &str = "DELETE FROM conversations WHERE id = $1";
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_TIMESTAMP` is never used
[INFO] [stdout]   --> src/storage/queries.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const UPDATE_TIMESTAMP: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE_BY_CONVERSATION` is never used
[INFO] [stdout]   --> src/storage/queries.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub const DELETE_BY_CONVERSATION: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNT_BY_CONVERSATION` is never used
[INFO] [stdout]   --> src/storage/queries.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub const COUNT_BY_CONVERSATION: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE_BY_MESSAGE` is never used
[INFO] [stdout]   --> src/storage/queries.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const DELETE_BY_MESSAGE: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE` is never used
[INFO] [stdout]    --> src/storage/queries.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub const DELETE: &str = r#"
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIST_BY_USER` is never used
[INFO] [stdout]    --> src/storage/queries.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub const LIST_BY_USER: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_QUERIES` is never used
[INFO] [stdout]    --> src/storage/queries.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub const LONG_QUERIES: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCKS` is never used
[INFO] [stdout]    --> src/storage/queries.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub const LOCKS: &str = r#"
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_COUNT` is never used
[INFO] [stdout]    --> src/storage/queries.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub const CONNECTION_COUNT: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TABLE_SIZES` is never used
[INFO] [stdout]    --> src/storage/queries.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub const TABLE_SIZES: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SET_ISOLATION_REPEATABLE_READ` is never used
[INFO] [stdout]    --> src/storage/queries.rs:153:15
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub const SET_ISOLATION_REPEATABLE_READ: &str = 
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SET_ISOLATION_SERIALIZABLE` is never used
[INFO] [stdout]    --> src/storage/queries.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub const SET_ISOLATION_SERIALIZABLE: &str = 
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STREAM_CHUNK_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> src/providers/gemini/provider.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const STREAM_CHUNK_TIMEOUT_SECS: u64 = 30; // Max wait time between chunks
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_provider` is never used
[INFO] [stdout]   --> src/providers/registry.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ProviderRegistry {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_provider(&self, provider_name: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_provider_keyboard` is never used
[INFO] [stdout]   --> src/bot/ui/keyboards.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn build_provider_keyboard(provider_name: &str, display_name: &str, has_key: bool) -> Vec<InlineKeyboardButton> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NO_PROVIDERS` is never used
[INFO] [stdout]   --> src/bot/ui/messages.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const NO_PROVIDERS: &str = "❌ 没有可用的模型提供商。";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_RESPONSE` is never used
[INFO] [stdout]   --> src/bot/ui/messages.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const EMPTY_RESPONSE: &str = "❌ 收到空响应。";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `THINKING` is never used
[INFO] [stdout]   --> src/bot/ui/messages.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const THINKING: &str = "💭 正在思考...";
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/core/traits.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait ModelProvider: Send + Sync {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 11 |     /// Get the provider name
[INFO] [stdout] 12 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_conversation`, `delete_conversation`, and `clear_messages` are never used
[INFO] [stdout]   --> src/core/traits.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait ConversationStorage: Send + Sync {
[INFO] [stdout]    |           ------------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 35 |     async fn get_conversation(&self, id: ConversationId) -> Result<ConversationInfo>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     async fn delete_conversation(&self, id: ConversationId) -> Result<()>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     async fn clear_messages(&self, conversation_id: ConversationId) -> Result<()>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Image` and `Video` are never constructed
[INFO] [stdout]   --> src/core/types.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub enum ResponseChunk {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 95 |     Text(String),
[INFO] [stdout] 96 |     Image { data: Vec<u8>, mime_type: String },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 97 |     Video { data: Vec<u8>, mime_type: String },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseChunk` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotFound` is never constructed
[INFO] [stdout]   --> src/core/error.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum BotError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     NotFound(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_WITH_COUNT` is never used
[INFO] [stdout]   --> src/storage/queries.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub const GET_WITH_COUNT: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE` is never used
[INFO] [stdout]   --> src/storage/queries.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const DELETE: &str = "DELETE FROM conversations WHERE id = $1";
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_TIMESTAMP` is never used
[INFO] [stdout]   --> src/storage/queries.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const UPDATE_TIMESTAMP: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE_BY_CONVERSATION` is never used
[INFO] [stdout]   --> src/storage/queries.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub const DELETE_BY_CONVERSATION: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNT_BY_CONVERSATION` is never used
[INFO] [stdout]   --> src/storage/queries.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub const COUNT_BY_CONVERSATION: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE_BY_MESSAGE` is never used
[INFO] [stdout]   --> src/storage/queries.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const DELETE_BY_MESSAGE: &str = r#"
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DELETE` is never used
[INFO] [stdout]    --> src/storage/queries.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub const DELETE: &str = r#"
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIST_BY_USER` is never used
[INFO] [stdout]    --> src/storage/queries.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub const LIST_BY_USER: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_QUERIES` is never used
[INFO] [stdout]    --> src/storage/queries.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub const LONG_QUERIES: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCKS` is never used
[INFO] [stdout]    --> src/storage/queries.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub const LOCKS: &str = r#"
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_COUNT` is never used
[INFO] [stdout]    --> src/storage/queries.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub const CONNECTION_COUNT: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TABLE_SIZES` is never used
[INFO] [stdout]    --> src/storage/queries.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub const TABLE_SIZES: &str = r#"
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SET_ISOLATION_REPEATABLE_READ` is never used
[INFO] [stdout]    --> src/storage/queries.rs:153:15
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub const SET_ISOLATION_REPEATABLE_READ: &str = 
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SET_ISOLATION_SERIALIZABLE` is never used
[INFO] [stdout]    --> src/storage/queries.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub const SET_ISOLATION_SERIALIZABLE: &str = 
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STREAM_CHUNK_TIMEOUT_SECS` is never used
[INFO] [stdout]   --> src/providers/gemini/provider.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const STREAM_CHUNK_TIMEOUT_SECS: u64 = 30; // Max wait time between chunks
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_provider` is never used
[INFO] [stdout]   --> src/providers/registry.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ProviderRegistry {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_provider(&self, provider_name: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_provider_keyboard` is never used
[INFO] [stdout]   --> src/bot/ui/keyboards.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn build_provider_keyboard(provider_name: &str, display_name: &str, has_key: bool) -> Vec<InlineKeyboardButton> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NO_PROVIDERS` is never used
[INFO] [stdout]   --> src/bot/ui/messages.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const NO_PROVIDERS: &str = "❌ 没有可用的模型提供商。";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_RESPONSE` is never used
[INFO] [stdout]   --> src/bot/ui/messages.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const EMPTY_RESPONSE: &str = "❌ 收到空响应。";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `THINKING` is never used
[INFO] [stdout]   --> src/bot/ui/messages.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const THINKING: &str = "💭 正在思考...";
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | anyhow = "1.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `toml`
[INFO] [stderr]   --> Cargo.toml:16:1
[INFO] [stderr]    |
[INFO] [stderr] 16 | toml = "0.8"
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `toml`
[INFO] [stderr] warning: `KilluaBot` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a", kill_on_drop: false }`
[INFO] [stdout] 2b0dc8f481754f3b16492aeeed93aa3865202b00f16c3f9a3f27abb042b8606a
